]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
layout: Make sure startup animation completes
authorFlorian Müllner <fmuellner@gnome.org>
Wed, 13 Apr 2022 18:57:05 +0000 (20:57 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Wed, 13 Apr 2022 19:08:53 +0000 (21:08 +0200)
We currently complete the animation using an onComplete handler,
which only runs if the corresponding transition was stopped when
finished.

While it is unexpected that the transition is interrupted, it can
apparently happen under some circumstances (like VMs with qlx).
The consequences of that are pretty bad, mainly due to the cover
pane that prevents input during the animation not getting removed.

Address this by always completing the animation when the transition
is stopped, regardless of whether it completed or not.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5337

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2269>

js/ui/layout.js

index 0f279f86c800b9859cd9a1c0f2c662fc1c8ad070..fe91ff186c962eb41dc97e6d3fa0b0a781212d88 100644 (file)
@@ -740,14 +740,14 @@ var LayoutManager = GObject.registerClass({
             translation_y: 0,
             duration: STARTUP_ANIMATION_TIME,
             mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-            onComplete: () => this._startupAnimationComplete(),
+            onStopped: () => this._startupAnimationComplete(),
         });
     }
 
     _startupAnimationSession() {
-        const onComplete = () => this._startupAnimationComplete();
+        const onStopped = () => this._startupAnimationComplete();
         if (Main.sessionMode.hasOverview) {
-            Main.overview.runStartupAnimation(onComplete);
+            Main.overview.runStartupAnimation(onStopped);
         } else {
             this.uiGroup.ease({
                 scale_x: 1,
@@ -755,7 +755,7 @@ var LayoutManager = GObject.registerClass({
                 opacity: 255,
                 duration: STARTUP_ANIMATION_TIME,
                 mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-                onComplete,
+                onStopped,
             });
         }
     }